Click Here!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Oracle Performance Tuning and Optimization
(Publisher: Macmillan Computer Publishing)
Author(s): Edward Whalen
ISBN: 067230886x
Publication Date: 04/01/96

Bookmark It

Search this book:
 
Previous Table of Contents Next


Chapter 11
Tuning the Server Operating System

The server operating system functions as a host for the RDBMS. The OS performs such tasks as providing access to data stored on disk, either through the file system or directly through the raw interfaces (available on some OSes). The OS also provides the network interface that SQL*Net uses to communicate to other machines. Other functions provided by the operating system include system performance monitoring and backup and recovery functions.

Although these functions are essential to the operation of Oracle, they should be done with as little system overhead as possible. The I/O and network functions can be configured to be streamlined to reduce overhead. As much as possible, the system should get out of the way and let Oracle do its work.

This chapter looks at the goals for tuning the server operating system and what areas are normally tuned. The next chapter looks at the specifics of tuning several different operating systems.

Goals

The goals for tuning the server operating system can be combined into a single goal: provide Oracle with the functions and abilities needed to operate in an optimal manner. The functions the OS provides are things such as a sufficient amount of memory, an optimal path to I/O, and the ability to create a sufficient number of processes to connect the desired number of users.

One goal for every operating system is to reduce the amount of overhead used by the OS. Many times, you may never need and never use some of the processes and drivers configured into the system. By removing these unnecessary processes (and freeing the resources they have allocated), you can reallocate these resources where they can be more effective—mainly, the Oracle SGA.

By default, the server OS may be tuned for file or print services and therefore allocate large amounts of memory for disk and print caching. By reducing the amount of memory allocated to these tasks, more memory can be used by Oracle.

Check to see what is turned on in the operating system by default. You may find many completely unnecessary processes or threads. If your system operates in a single-protocol network, it is unnecessary to run multiple protocols on the server. Any reduction in memory or processing overhead can be exploited by Oracle.

Other goals for tuning the server operating system are to provide the most optimal I/O path, reduce network contention, and configure OS features (such as Asynchronous I/O and post-wait semaphores) that may improve the performance of Oracle.

By providing an optimal path for I/O, you may see significant gains because most data access involves disk I/O. Anything you can do to improve I/O—such as reducing overhead, offloading non-Oracle work, and reducing fragmentation—results in significant performance gains. I/O is a critical area in any OS because it is typically the slowest component in any data access.

By reducing network contention, you may shorten latencies that cause performance problems. When I/Os are critical to transactions (such as with distributed databases), network contention can significantly hurt performance. If you can reduce overhead, you will increase performance.

Use any additional features in the OS that help improve the performance of Oracle—such as Asynchronous I/O and the post-wait semaphore—whenever possible. Although a performance gain by one single component may be insignificant, when you add it to many other small gains, you may see a large gain.

This chapter looks at many of the features you can enable in the server operating system. You will see that, regardless of the operating system, many of the OS functions and features are similar—and many features differ. In Chapter 12, “Operating System-Specific Tuning,” you see how these features are specifically implemented in several popular operating systems.

Processes

It is necessary to tune only the number of processes you need to support the required number of users. Remember that you must also add enough processes to accommodate the background processes. Although there is usually no problem with the number of processes allowed on a system, some operating systems cannot handle a large number of users.

To calculate the number of user processes needed on your system, take the maximum number of concurrent users you need to support, add an additional 10 for Oracle server processes, and add another 5 to 10 percent for additional OS processes that often need to run. If your system supports additional users for development or other nonproduction usage, add these numbers also.

For some operating systems, you may also have to tune the maximum number of processes allowed for a particular user. Because the Oracle user ID owns the Oracle server processes, the Oracle user must be able to support many processes. This includes the background processes as well as other administrative processes you may invoke during backups and so on. A good rule of thumb is to make the maximum number of processes per user equivalent to the number of Oracle users plus 25. This number allows for the server processes as well as any administrative tasks you might be running.

The priority of the process is also of importance. Although, in some cases, putting some processes at a high priority can benefit performance, priority adjustment is a very tricky thing. I feel that increasing the priority of Oracle processes usually is not worth the tremendous effort needed to do it.

Increasing the priority of some processes may prevent other processes from getting enough CPU time. And starving some processes may cause the performance of the RDBMS as a whole to suffer.

One area in which adjusting priority may help without too much risk is in loading the database. If the system is not being used for user processing, you may benefit from raising the priority of the direct loader processes. The higher priority may keep the processes from being preempted, resulting in higher throughput. However, do this at your own risk.


CAUTION:  I do not recommend adjusting the priority of any process. I don’t feel that the benefit you can get outweighs the possible performance degradation you may see.

By putting any process at a high priority, you run the risk of not being able to stop it. If you put any Oracle task at very high priority, make sure that you have a user process of equal or higher priority that can stop it in the event of a runaway process.



Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited.